SDメモ : 横方向の灰色グラデーションをグラフ形式で表示する
はじめに
横方向にのみ変化するグラデーションを $ y = f(x) のようなグラフの形で表示する方法を紹介します。
https://gyazo.com/8271553c1c7028a36a33fd4d3ca87f73
グラフ例 : $ y = x
https://gyazo.com/c98d30f4cb358dcda4f0d6e8f73bb722
数式とSubstanceDesignerの対応関係
数式とSubstance Designerは以下のように対応すると思います。
$ \begin{cases} x & : UV座標のX成分(UV.X) \\ y & : UV座標のY成分(UV.Y) \\ f(x) & : x座標に対応するグラデーションの色 \end{cases}
実装1: グラフy = xを表示する
まずは、SubstanceDesigner で y = xのグラフを表示してみたいと思います。
https://gyazo.com/c98d30f4cb358dcda4f0d6e8f73bb722
Pixel Processor の中で以下のようなノードを組むことで、y = xのグラフを表示することができます。
https://gyazo.com/9b8cdc3c878f63d549ad4220ae444d92
結果)
右下下がりの直線が表示されました。
https://gyazo.com/296128b1adc9a8d6aea2ef8cba3dc635
グラフが上下反転する原因
SubstanceDesignerではy成分は下へ向かって増加するため、グラフが上下反転されて表示されます。
https://gyazo.com/ec63ed03810dfa8b3aebf608cbfb6002
修正)
UVのY成分にOne Minus ノードを適用して、グラフを上下反転します。
これで、$ y = x のグラフが正しく表示されます。
https://gyazo.com/1f257d5b2861eecc4e3a962076178120 https://gyazo.com/2847908a0fb58e04026478d576501bc1
実装2: グラフy = f(x)を表示する
$ x の部分を グラデーション $ f(x) に置き換えることで、 $ y = f(x) のグラフが表示できます。
https://gyazo.com/8271553c1c7028a36a33fd4d3ca87f73
https://gyazo.com/29930b1f33364fff6b208f583ebe2e95